//
//  TBStatus.swift
//  新浪微博
//
//  Created by bin on 16/1/29.
//  Copyright © 2016年 XMG. All rights reserved.
//

import UIKit


class TBStatus: NSObject {

    
    /// 当前这条微博的发布时间
    var created_at: String?
    
    /// 来源 <a href=\"http://app.weibo.com/t/feed/2O2xZO\" rel=\"nofollow\">人民网微博</a>
    var source: String?
    var pic_urls: [[String: AnyObject]]?
    
    var retweeted_status: TBStatus?
    
    var idstr: String?
    
    /// 微博信息内容
    var text: String?
    
    /// 当前微博对应的用户
    var user: TBUser?
    
    init(dict: [String:AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    // 如果利用KVC赋值, 但是字典和模型的属性不能一一对应, 就会调用下面这个方法
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    // 只要重写这个属性, 就相当于OC中重写description方法
    override var description: String {
        // 优化
        let property = ["created_at", "idstr", "text", "user"]
        let dict =  dictionaryWithValuesForKeys(property)
        return "\(dict)"
    }
    // （模型中属性为模型）KVC的方法内部会调用下面这个方法
    
    override func setValue(value: AnyObject?, forKey key: String) {
        if key == "user"
        {
            user = TBUser(dict: value as! [String: AnyObject])
            return // 注意: 如果自己处理了, 那么就不需要父类处理了, 所以一定要写上return
        }
        
        if key == "retweeted_status"
        {
            retweeted_status = TBStatus(dict: value as! [String: AnyObject])
            return // 注意: 如果自己处理了, 那么就不需要父类处理了, 所以一定要写上return
        }
        super.setValue(value, forKey: key)
    }

}
